package juego;

import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Random;

/**Clase metodos que contiene metodos que usan tanto el cliente como el servidor
 *
 * @author luis
 */
public class metodos {
	
    //metodo que genera el tablero del juego de manera aleatoria
    public static char[][] generartablero(){
    	
    	double randomn;
    	char[][] tbl = new char[4][4];
    	
    	//se generan aleatoreamente las letras y se crea el tablero
        Random randomGenerator = new Random();
        for (int idx = 0; idx <= 3; ++idx)
        	for (int idy = 0; idy <= 3; ++idy){
        		randomn = randomGenerator.nextDouble();
          
        		if(     randomn>=0            && randomn <=0.0625)      tbl[idx][idy] = 'a';
        		else if(randomn> 0.0625       && randomn <=0.0833333333)tbl[idx][idy] = 'b';
        		else if(randomn> 0.0833333333 && randomn <=0.1041666667)tbl[idx][idy] = 'c';
        		else if(randomn> 0.1041666667 && randomn <=0.1354166667)tbl[idx][idy] = 'd';
        		else if(randomn> 0.1354166667 && randomn <=0.25)        tbl[idx][idy] = 'e';
        		else if(randomn> 0.25         && randomn <=0.2708333333)tbl[idx][idy] = 'f';
        		else if(randomn> 0.2708333333 && randomn <=0.2916666667)tbl[idx][idy] = 'g';
        		else if(randomn> 0.2916666667 && randomn <=0.34375)     tbl[idx][idy] = 'h';
        		else if(randomn> 0.34375      && randomn <=0.40625)     tbl[idx][idy] = 'i';
        		else if(randomn> 0.40625      && randomn <=0.4166666667)tbl[idx][idy] = 'j';
        		else if(randomn> 0.4166666667 && randomn <=0.4270833333)tbl[idx][idy] = 'k';
        		else if(randomn> 0.4270833333 && randomn <=0.46875)     tbl[idx][idy] = 'l';
        		else if(randomn> 0.46875      && randomn <=0.4895833333)tbl[idx][idy] = 'm';
        		else if(randomn> 0.4895833333 && randomn <=0.5520833333)tbl[idx][idy] = 'n';
        		else if(randomn> 0.5520833333 && randomn <=0.625)       tbl[idx][idy] = 'o';
        		else if(randomn> 0.625        && randomn <=0.6458333333)tbl[idx][idy] = 'p';
        		else if(randomn> 0.6458333333 && randomn <=0.65625)     tbl[idx][idy] = 'q';
        		else if(randomn> 0.65625      && randomn <=0.7083333333)tbl[idx][idy] = 'r';
        		else if(randomn> 0.7083333333 && randomn <=0.7708333333)tbl[idx][idy] = 's';
        		else if(randomn> 0.7708333333 && randomn <=0.8645833333)tbl[idx][idy] = 't';
        		else if(randomn> 0.8645833333 && randomn <=0.8958333333)tbl[idx][idy] = 'u';
        		else if(randomn> 0.8958333333 && randomn <=0.9166666667)tbl[idx][idy] = 'v';
        		else if(randomn> 0.9166666667 && randomn <=0.9479166667)tbl[idx][idy] = 'w'; 
        		else if(randomn> 0.9479166667 && randomn <=0.9583333333)tbl[idx][idy] = 'x';
        		else if(randomn> 0.9583333333 && randomn <=0.9895833333)tbl[idx][idy] = 'y';
        		else if(randomn> 0.9895833333 && randomn <=1)           tbl[idx][idy] = 'z'; 
        	}   	  	
    	
		return tbl;    	
    }
    
    //limpiar pantalla
	public static void clearConsole()
	{
	    try
	    {
	        String os = System.getProperty("os.name");

	        if (os.contains("Windows"))
	        {	   
	        	Runtime.getRuntime().exec("cls");
	        }
	        else
	        {
	            Runtime.getRuntime().exec("clear");
	        }
	    }
	    catch (Exception exception)
	    {
	        //  Handle exception.
	    }
	}

	//metodo que captura las opciones del usuairo
	public static String capturarentrada(int modo){
		
		String entrada = null;
		
		try {
			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));			
		    while ((entrada = br.readLine()) != null)		    
		    	switch (modo) {
		    	case 1: Integer.parseInt(entrada);
		    		return entrada;
				case 2: if(entrada.toLowerCase()=="si") return "1";
						else if(entrada.toLowerCase()=="no") return "0";
						else return "-1";
				case 3: return entrada;
				default:return null;					
		    	}   	
		}    	
		catch (Exception e) {
			return "-1";
		}
		return "-1";
		
	}

	//metodo que simula la tecla de enter
	public static void enterkey(){
		
	    Robot robot;
		try {
			robot = new Robot();
			
			// Simulate a key press
	        robot.keyPress(KeyEvent.VK_ENTER);
	        robot.keyRelease(KeyEvent.VK_ENTER);
		} catch (AWTException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

        
		
	}
	
	
}
